interface StaringArray {
  [index:number]:string
}

const myArray: StaringArray = ['a','b']
const secondItem = myArray[0]

interface TestString {
  [props:string]:number
}

let testString:TestString = {
  x:100,
  y:200,
  //aaa:'aaa'
}

interface Animal {
  name: string
}
interface Dog extends Animal {
  breed:string
}

interface NotOkay {
  [index:string]:number | string
  length:number
  name:string
}

let ontOkay:NotOkay = {
  x:100,
  length:1,
  name:'111' 
}

interface ReadonlyStringArray {
  readonly [index:number]:string
}

let myArray2:ReadonlyStringArray = ['a','b']
myArray2[0] = 'Felix'